dequoteTest is package{
  import dequote;

  dequoteable type person is
    noone or
    someone{
      name has type string;
      age has type float;
      dob has type long;
    };

  dequoteable type tree of %t is
    empty or
    node(tree of %t,%t,tree of %t);

  main() do {
    N is <|noone|> as person;

    logMsg(info,"N is $N");

    S is <|someone{ name="fred"; age=0.0; dob=12345l }|> as person;
    logMsg(info,"S is $S");

    assert S.name="fred";

    T is <|node(node(empty,1,empty),2,node(empty,3,empty))|> as (tree of integer);

    logMsg(info,"T=$T");
    assert T matches node(_,2,_);
  }
}